<script setup>
import { ref, onMounted, onUnmounted } from "vue";
import AMapLoader from "@amap/amap-jsapi-loader";
let map = ref(null);
let aMap = ref();
let marker = ref();
const initMap = () => {
  AMapLoader.load({
    key: "9efe7edc9f59a1d1c20bfa4bce6ee0d0", // 申请好的Web端开发者Key，首次调用 load 时必填
    version: "2.0", // 指定要加载的 JSAPI 的版本，缺省时默认为 1.4.15
    plugins: [], // 需要使用的的插件列表，如比例尺'AMap.Scale'等
  })
    .then((AMap) => {
      aMap.value = AMap;
      map.value = new AMap.Map("container", {
        // 设置地图容器id
        viewMode: "3D", // 是否为3D地图模式
        zoom: 11, // 初始化地图级别
        center: [116.397428, 39.90923], // 初始化地图中心点位置
      });

      // 给地图注册点击事件获取经纬度
      map.value.on("click", (e) => {
        if (marker.value) {
          //如果marker存在清除上一次的marker
          map.value.remove(marker.value);
        }

        marker.value = new AMap.Marker({
          position: new AMap.LngLat(e.lnglat.lng, e.lnglat.lat),
          offset: new AMap.Pixel(-10, -10),
          icon: "//vdata.amap.com/icons/b18/1/2.png", //添加 icon 图标 URL
          title: "北京",
        });
        //将创建的点标记添加到已有的地图实例：
        map.value.add(marker.value);
      });
    })
    .catch((e) => {
      console.log(e);
    });
};
onMounted(() => {
  initMap();
});

onUnmounted(() => {
  map?.destroy();
});
</script>

<template>
  <div id="container"></div>
</template>

<style scoped>
#container {
  width: 500px;
  height: 800px !important;
}
</style>
